// 步骤说明：
// U - 向上移动 (↑)
// D - 向下移动 (↓)
// L - 向左移动 (←)
// R - 向右移动 (→)

// 关卡数据
export const levels = [
    // 每个关卡都包含solution属性，记录通关步骤
    {
        id: 1,
        name: '基础入门',
        map: [
            '########',
            '#      #',
            '#  ..  #',
            '#  $$  #',
            '#  @   #',
            '#      #',
            '########'
        ],
        difficulty: 1,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R'],
            description: '先将左边箱子推到左边目标点，再将右边箱子推到右边目标点'
        },
        tutorial: {
            steps: [
                '使用方向键(↑↓←→)移动角色(@)',
                '将箱子($)推到目标点(.)上',
                '按Z键可以撤销上一步',
                'R键可以重新开始本关'
            ]
        }
    },
    {
        id: 2,
        name: '回形布局',
        map: [
            '########',
            '#      #',
            '#  ..  #',
            '# #  # #',
            '#  $$  #',
            '#  @   #',
            '########'
        ],
        difficulty: 2,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'D', 'R'],
            description: '需要绕过中间的墙，依次将箱子推到目标点'
        }
    },
    {
        id: 3,
        name: '双箱迷宫',
        map: [
            '#########',
            '#   .   #',
            '# # # # #',
            '#   $   #',
            '# #$# # #',
            '#  .@   #',
            '#########'
        ],
        difficulty: 2,
        solution: {
            steps: ['L', 'U', 'U', 'R', 'U', 'L', 'D', 'R', 'U', 'L', 'U', 'R'],
            description: '先处理下方箱子，再处理上方箱子'
        }
    },
    {
        id: 4,
        name: '十字布局',
        map: [
            '#########',
            '#  ...  #',
            '# # # # #',
            '#  $$$  #',
            '#   @   #',
            '#  ###  #',
            '#########'
        ],
        difficulty: 3,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'R', 'L', 'L', 'U'],
            description: '从左到右依次将箱子推到目标点'
        }
    },
    {
        id: 5,
        name: '回形通道',
        map: [
            '#########',
            '#  ...  #',
            '# # # # #',
            '#  $$$  #',
            '#   @   #',
            '#  ###  #',
            '#########'
        ],
        difficulty: 3,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'R', 'L', 'L', 'U'],
            description: '将三个箱子依次推到上方的目标点，注意避免箱子互相阻碍'
        }
    },
    {
        id: 6,
        name: '三箱挑战',
        map: [
            '#########',
            '#  ...  #',
            '# #   # #',
            '#  $$$  #',
            '# # @ # #',
            '#   #   #',
            '#########'
        ],
        difficulty: 3,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'U', 'R'],
            description: '通过中间的通道将箱子依次推到上方'
        }
    },
    {
        id: 7,
        name: '迷宫探险',
        map: [
            '##########',
            '#   ..   #',
            '# # ### # #',
            '#   $ $   #',
            '# # #@# # #',
            '#   ###   #',
            '##########'
        ],
        difficulty: 3,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'D', 'R', 'U', 'L', 'U', 'R'],
            description: '利用中间的墙壁作为支点，依次推动箱子到目标位置'
        }
    },
    {
        id: 8,
        name: '四箱布局',
        map: [
            '#############',
            '#     #     #',
            '#  ....     #',
            '# # # ## #  #',
            '#  $ $$  $  #',
            '### #@# #####',
            '#     #     #',
            '#############'
        ],
        difficulty: 4,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'D', 'R', 'U', 'L', 'U', 'R'],
            description: '需要仔细规划箱子的推动顺序，避免互相阻碍'
        }
    },
    {
        id: 9,
        name: '环形迷宫',
        map: [
            '#############',
            '#   ....    #',
            '# #    ## #  #',
            '#   $$$$    #',
            '# ###@#    # #',
            '#  #   #    #',
            '#    #    # #',
            '#############'
        ],
        difficulty: 4,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'U', 'R', 'D', 'R', 'U'],
            description: '利用环形通道依次推动箱子到目标位置'
        }
    },
    {
        id: 10,
        name: '双向选择',
        map: [
            '#############',
            '#   .....   #',
            '# #       # #',
            '#   $$$$$   #',
            '# ###@### # #',
            '#  #   #    #',
            '#    #    # #',
            '#############'
        ],
        difficulty: 4,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'U'],
            description: '需要合理选择推箱子的方向和顺序'
        }
    },
    {
        id: 11,
        name: '蛇形通道',
        map: [
            '##############',
            '#    .....   #',
            '# # ## ## # ##',
            '#    $$$$$   #',
            '#  #  @  #   #',
            '#  #######   #',
            '#            #',
            '##############'
        ],
        difficulty: 5,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'L', 'R', 'R', 'R', 'U', 'L', 'L', 'L', 'R', 'R', 'U'],
            description: '通过蛇形通道依次将箱子推到目标位置'
        }
    },
    {
        id: 12,
        name: '复杂布局',
        map: [
            '###############',
            '#    ......   #',
            '# ## # ## ### # #',
            '#    $$$$$$   #',
            '#  #  @   #    #',
            '# #### ## ### # #',
            '#             #',
            '###############'
        ],
        difficulty: 5,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'L', 'R', 'U'],
            description: '利用中间的墙壁作为支点，依次推动箱子'
        }
    },
    {
        id: 13,
        name: '终极迷宫',
        map: [
            '################',
            '#     ......   #',
            '# ### ##  ## ### # #',
            '#     $$$$$$   #',
            '#  #   @   #   #',
            '# ########## # #',
            '#              #',
            '################'
        ],
        difficulty: 5,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'L', 'R', 'R', 'U', 'L', 'L', 'U', 'R'],
            description: '需要仔细规划路线，避免箱子互相阻碍'
        }
    },
    {
        id: 14,
        name: '六箱挑战',
        map: [
            '################',
            '#    ......    #',
            '# #  ##  #  ###  # #',
            '#    $$$$$$    #',
            '# ## #  @ ##  ##   #',
            '#  #   #   #   #',
            '#      #       #',
            '################'
        ],
        difficulty: 5,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'L', 'R', 'R', 'R', 'U', 'L', 'L', 'L', 'R', 'R', 'R', 'U'],
            description: '通过中央通道将箱子依次推到上方目标点'
        }
    },
    {
        id: 15,
        name: '双区域',
        map: [
            '################',
            '#  ...   ...   #',
            '#  #  #    # ##   #',
            '#  $ $ $    $$$   #',
            '#  #  #@#  #   #',
            '#     ###      #',
            '#              #',
            '################'
        ],
        difficulty: 5,
        solution: {
            steps: ['L', 'L', 'U', 'U', 'R', 'R', 'U', 'L', 'D', 'R', 'R', 'R', 'U', 'U', 'L', 'L', 'D', 'R'],
            description: '先处理左边区域，再处理右边区域'
        }
    },
    {
        id: 16,
        name: '迷宫大师',
        map: [
            '#################',
            '#    ......    #',
            '# #  #   #  ####   # #',
            '#    $$$$$$    #',
            '# ## #  @     ###  #',
            '#  #   #   #   #',
            '#     ###      #',
            '#################'
        ],
        difficulty: 5,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'L', 'R', 'R', 'R', 'U', 'L', 'L', 'L', 'R', 'R', 'R', 'U', 'L', 'L'],
            description: '利用中央空间依次推动箱子到目标位置'
        }
    },
    {
        id: 17,
        name: '对称布局',
        map: [
            '#################',
            '#  ...   ...   #',
            '#  #  ##   # ##   #',
            '#  $ $ $   $ $ $   #',
            '#  #  #@#  #   #',
            '#  ######### # #',
            '#     ###      #',
            '#################'
        ],
        difficulty: 5,
        solution: {
            steps: ['L', 'L', 'U', 'U', 'R', 'R', 'U', 'L', 'D', 'R', 'R', 'R', 'U', 'U', 'L', 'L', 'D', 'R', 'U'],
            description: '利用对称布局，先左后右依次处理'
        }
    },
    {
        id: 18,
        name: '八箱迷阵',
        map: [
            '###### ## #### ######',
            '#     . .. ... ..   #',
            '# ##  # # # ## # ##  #',
            '#     $ $ $ $ $ $ $$  #',
            '# ###   @   # ## #',
            '#  #   # # #  #   #',
            '#     # ## ##     #',
            '##################'
        ],
        difficulty: 5,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'L', 'R', 'R', 'R', 'U', 'L', 'L', 'L', 'R', 'R', 'R', 'U', 'L', 'L', 'L', 'R'],
            description: '需要精确控制八个箱子的移动顺序'
        }
    },
    {
        id: 19,
        name: '终极挑战',
        map: [
            '##################',
            '#    .......      ##',
            '# #  # # # # #  #   #',
            '#    $ $ $ $ $ $ $  #',
            '# ###   @   ###     ##',
            '#  #   ###  #      #',
            '#     #####       #',
            '##################',
        ],
        difficulty: 5,
        solution: {
            steps: ['U', 'U', 'L', 'L', 'L', 'R', 'R', 'R', 'U', 'L', 'L', 'L', 'R', 'R', 'R', 'U', 'L', 'L', 'L', 'R', 'U'],
            description: '最终关卡，需要综合运用所有技巧'
        }
    }
];

// 图例说明：
// # - 墙壁
// @ - 玩家
// $ - 箱子
// . - 目标点
// * - 箱子在目标点上
// + - 玩家在目标点上

// 难度系数说明：
// 1 - 简单（适合新手）
// 2 - 中等（需要一定思考）
// 3 - 困难（需要较多步骤和策略）
// 4 - 专家（复杂布局，特殊机制）
// 5 - 大师（终极挑战）

// 特殊道具类型：
// key - 钥匙
// lockedBox - 上锁的箱子
// portal - 传送门
// ice - 冰面

